#include "Data.h"

Data::Data(){
this->zi=1;
this->luna=1;
this->an=2012;
}
Data::Data(int zi, int luna, int an)
{
this->zi=zi;
this->luna=luna;
this->an=an;
}
int Data::getZi()
{
return this->zi;
}
int Data::getLuna()
{
return this->luna;
}
int Data::getAn()
{
return this->an;
}
void Data::setZi(int zi)
{
this->zi=zi;
}
void Data::setLuna(int luna)
{
this->luna=luna;
}
void Data::setAn(int an)
{
this->an=an;
}
bool Data::anBisect()
{
int an_curent;
an_curent=this->an;
if (an_curent%4==0) return true;
else return false;
}
int Data::checkZile(int luna)
{
switch(luna)
{
case 1: return 31;
	break;
case 2: {if(this->anBisect())
	return 29;
	else return 28;
	}
case 3: return 31;
	break;
case 4: return 30;
	break;
case 5: return 31;
	break;
case 6: return 30;
	break;
case 7: return 31;
	break;
case 8: return 31;
	break;
case 9: return 30;
	break;
case 10: return 30;
	break;
case 11:return 31;
	break;
case 12:return 31;
	break;
}
}
bool Data::operator>=(Data d)
{
int an1,an2,zi1,zi2,luna1,luna2;
an1=this->getAn();
an2=d.getAn();
luna1=this->getLuna();
luna2=d.getLuna();
zi1=this->getZi();
zi2=d.getZi();
if (an1>an2) return false;
if ((an1==an2)&&(luna1>luna2)) return false;
if ((an1==an2)&&(luna1==luna2)&&(zi1>zi2)) return false;
return true;
}
ostream& operator<<(ostream& afiseaza, const Data& d)
{
afiseaza<<d.zi<<"/"<<d.luna<<"/"<<d.an;
return afiseaza;
}
